ASP.NET Core 的網頁應用程式其實是一個在 Main 方法中建立網頁伺服器的主控台應用程式。(有點像 Node.js 的 listen port?)
public class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }
    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>();
}
Main 方法中會呼叫 WebHost.CreateDefaultBuilder,採用生成器模式 (builder pattern) 來建立一個網頁伺服器。這個 builder 包含定義網頁伺服器 (UseKestrel) 和定義啟動類別 (UseStartup) 等方法。在範本建立的專案中,WebHost.CreateDefaultBuilder 中已經有呼叫 UseKestrel,如果採用預設值的話可以不用特別設定。啟動時會嘗試在 IIS 上執行。
WebHost.CreateDefaultBuilder 回傳 IWebHostBuilder 類別,其中有許多方法可以對伺服器有更多設定,完整列表可以參考官方文件。Build 方法會建立 IWebHost 物件,Run 方法則是掛載應用程式後開始監聽請求。
接下來幾天會再介紹這些部分: